package com.example.zyl.common.query.annotation;

import com.example.zyl.common.utils.constant.RedisConstant;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * f分布式锁
 */
@Target(value = {java.lang.annotation.ElementType.METHOD})
@Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public @interface ApiLock {
    /**
     * 锁的key，默认为空
     *
     * @return 锁的key
     */
    String key() default RedisConstant.REDIS_KEY_PREFIX + RedisConstant.LOCK_KEY;

    /**
     * 超时时间，默认5秒
     *
     * @return 超时时间
     */
    long timeout() default 2000;


    /**
     * 超时时间单位
     */
    TimeUnit unit() default TimeUnit.MILLISECONDS;
}

